package com.lemobar.pay.enums;

import lombok.Getter;

/**
 * 微信 订单交易状态
 * wx:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2 中的 trade_state
 */
@Getter
public enum WxPayTradeStatusEnum {

    /*
    微信订单状态：
        SUCCESS--支付成功
        REFUND--转入退款
        NOTPAY--未支付
        CLOSED--已关闭
        REVOKED--已撤销(刷卡支付)
        USERPAYING--用户支付中
        PAYERROR--支付失败(其他原因，如银行返回失败)
        ACCEPT--已接收，等待扣款
     */

    SUCCESS("支付成功"),

    REFUND("转入退款"),

    NOTPAY("未支付"),

    CLOSED("已关闭"),

    REVOKED("已撤销(刷卡支付)"),

    USERPAYING("用户支付中"),

    PAYERROR("支付失败"),

    ACCEPT("已接收，等待扣款"),

    UNKNOW("未知状态"),

    ;

    /**
     * 描述 微信退款后有内容
     */
    private String desc;

    WxPayTradeStatusEnum(String desc) {
        this.desc = desc;
    }

    public static WxPayTradeStatusEnum findByName(String name) {
        if(name == null){
            return null;
        }
        for (WxPayTradeStatusEnum orderStatusEnum : WxPayTradeStatusEnum.values()) {
            if (name.toLowerCase().equals(orderStatusEnum.name().toLowerCase())) {
                return orderStatusEnum;
            }
        }
        throw new RuntimeException("错误的微信支付状态");
    }
}
